/*  
	------------------------------------------------------------------------
	 NQ Core Library
	
	 Homepage: http://www.awzhome.de/
	------------------------------------------------------------------------
	
	This Source Code Form is subject to the terms of the Mozilla Public
	License, v. 2.0. If a copy of the MPL was not distributed with this
	file, You can obtain one at http://mozilla.org/MPL/2.0/.
   
	The Original Code is code of NQ Core Library.

	The Initial Developer of the Original Code is Andreas Weizel.
	Portions created by the Initial Developer are
	Copyright (C) 2012 Andreas Weizel. All Rights Reserved.
	
	Contributor(s): (none)
	
	------------------------------------------------------------------------
*/

namespace AWZhome.NQ.Core
{
	/// <summary>
	/// Interface for a service that can execute a synchronous or asynchronous command.
	/// </summary>
	/// <remarks>
	/// The methods <see cref="AWZhome.NQ.Core.INQInvokableService.InvokeService">InvokeService</see>
	/// and <see cref="AWZhome.NQ.Core.INQInvokableService.QuitService">QuitService</see> can be
	/// used to control the command execution.
	/// </remarks>
	public interface INQInvokableService
	{
		/// <summary>
		/// Instructs the service to begin the operation.
		/// </summary>
		void InvokeService();
		/// <summary>
		/// Ends an asynchronous operation performed by the service.
		/// </summary>
		void QuitService();
	}
}
